package com.liangsong.designpattern.chain;


/**
 * @author liangsong
 * @version 1.0 2025/1/13
 * 责任链模式属于行为型模式，在这个模式中，通常使用一条链来处理请求，该请求沿着链的顺序传递，直到有对象处理该请求为止，从而达到解耦请求发送者和请求处理者的目的。
 * 抽象处理器（Handler）：定义处理请求的接口，提供一个抽象方法用于处理请求，并定义一个指向后继处理器的引用。
 * 具体处理器（ConcreteHandler）：实现抽象处理器接口，用于处理请求。如果当前处理器不能处理请求，则将请求传递给后继处理器。
 *
 *
 * */
public abstract class Approver {
    private String name;
    private Approver nextApprover;

    public Approver(String name, Approver nextApprover){
        this.name = name;
        this.nextApprover = nextApprover;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Approver getNextApprover() {
        return nextApprover;
    }

    public void setNextApprover(Approver nextApprover) {
        this.nextApprover = nextApprover;
    }

    public abstract void Approve(LeaveRequest leaveRequest);
}
